package personal.zq.practice.common.utils.leetcode.medium;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

/**
 * 明明的随机数
 * 时间限制：C/C++ 1秒，其他语言2秒
 * <p>
 * 空间限制：C/C++ 32M，其他语言64M
 * <p>
 * 明明生成了N个1到500之间的随机整数。请你删去其中重复的数字，即相同的数字只保留一个，把其余相同的数去掉，然后再把这些数从小到大排序，按照排好的顺序输出。
 * <p>
 * 数据范围：  ，输入的数字大小满足
 * <p>
 * 输入描述:
 * 第一行先输入随机整数的个数 N 。
 * 接下来的 N 行每行输入一个整数，代表明明生成的随机数。
 * 具体格式可以参考下面的"示例"。
 * <p>
 * 输出描述:
 * 输出多行，表示输入数据处理后的结果
 * <p>
 * <p>
 * 输入例子1:
 * 3
 * 2
 * 2
 * 1
 * <p>
 * 输出例子1:
 * 1
 * 2
 * <p>
 * 例子说明1:
 * 输入解释：
 * 第一个数字是3，也即这个小样例的N=3，说明用计算机生成了3个1到500之间的随机整数，接下来每行一个随机数字，共3行，也即这3个随机数字为：
 * 2
 * 2
 * 1
 * 所以样例的输出为：
 * 1
 * 2
 *
 * @author zhangqing
 * @version 1.0
 * @date 2022/7/29
 */
public class RandomNumber {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        ArrayList<Integer> a = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            a.add(Integer.parseInt(br.readLine()));
        }
        List b = a.stream().sorted(Comparator.comparing(Integer::intValue)).collect(Collectors.toList());
        for (int i = 0; i < b.size(); i++) {
            if (i > 0 && b.get(i) == b.get(i - 1)) {
                b.remove(i);
                i--;
                continue;
            }
            System.out.println(b.get(i));
        }
    }
}
